﻿// ***********************************************************************
// Apache 2.0 License
// Licensed under the Apache License, Version 2.0 (the "License"); you may
// not use this file except in compliance with the License. You may obtain
// a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 
//
// THIS CODE IS PROVIDED *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY 
// IMPLIED WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR 
// PURPOSE, MERCHANTABLITY OR NON-INFRINGEMENT.
//
// See the Apache Version 2.0 License for specific language governing
// permissions and limitations under the License.
// ***********************************************************************
// Assembly  : ContractMeow.Api.Dtos
// File      : Meta.cs
//
// ***********************************************************************
using Newtonsoft.Json;
using System;

namespace ContractMeow.Api.Dtos
{
	public sealed class Meta
	{
		[JsonProperty("bookmarked_message_ids")]
		public Int64[] BookmarkedMessageIds { get; set; }

		[JsonProperty("current_user_id")]
		public Int64 CurrentUserId { get; set; }

		[JsonProperty("featured_feed_token")]
		public String FeaturedFeedToken { get; set; }

		[JsonProperty("feed_name")]
		public String FeedName { get; set; }

		[JsonProperty("feed_desc")]
		public String FeedDescription { get; set; }

		//[JsonProperty( "followed_references" )]
		//public FollowedReference[] FollowedReferences { get; set; }

		[JsonProperty("followed_user_ids")]
		public Int64[] FollowedUserIds { get; set; }

		[JsonProperty("direct_from_body")]
		public Boolean? IsDirectFromBody { get; set; }

		[JsonProperty("older_available")]
		public Boolean? IsOlderAvailable { get; set; }

		[JsonProperty("last_seen_message_id")]
		public Int64? LastSeenMessageId { get; set; }

		[JsonProperty("liked_message_ids")]
		public Int64[] LikedMessageIds { get; set; }

		[JsonProperty("realtime")]
		public Realtime Realtime { get; set; }

		[JsonProperty("requested_poll_interval")]
		public Int32? RequestedPollInterval { get; set; }

		[JsonProperty("show_billing_banner")]
		public Boolean? ShowBillingBanner { get; set; }

		[JsonProperty("sort_by")]
		public String SortBy { get; set; }

		[JsonProperty("threads_in_inbox")]
		public Int64[] ThreadsInInbox { get; set; }

		[JsonProperty("unseen_message_count_my_all")]
		public Int32? UnseenMessageCountAllFeed { get; set; }

		[JsonProperty("unseen_message_count_algo")]
		public Int32? UnseenMessageCountFeaturedFeed { get; set; }

		[JsonProperty("unseen_message_count_following")]
		public Int32? UnseenMessageCountFollowingFeed { get; set; }

		[JsonProperty("unseen_message_count_received")]
		public Int32? UnseenMessageCountReceived { get; set; }

		[JsonProperty("unseen_thread_count_algo")]
		public Int32? UnseenThreadCountFeaturedFeed { get; set; }

		[JsonProperty("unseen_thread_count_my_all")]
		public Int32? UnseenThreadCountAllFeed { get; set; }

		[JsonProperty("unseen_thread_count_following")]
		public Int32? UnseenThreadCountFollowingFeed { get; set; }

		[JsonProperty("unseen_thread_count_received")]
		public Int32? UnseenThreadCountReceived { get; set; }

		[JsonProperty("ymodules")]
		public YModuleMeta[] YModules { get; set; }
	}
}